home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
-
- PATH=/usr/sbin:/usr/bin:/sbin:/bin
-
- SATA_MODULES="libata.ko sd_mod.ko sata_mv.ko sata_qstor.ko sata_nv.ko sata_promise.ko sata_sil.ko sata_sil24.ko sata_sis.ko \
- sata_svw.ko sata_sx4.ko sata_uli.ko sata_via.ko sata_vsc.ko ata_piix"
-
- SCSI_MODULES="libata.ko sd_mod.ko aacraid.ko aic7xxx.ko BusLogic.ko \
- NCR53c406a.ko initio.ko \
- aha1740.ko aha1542.ko aha152x.ko \
- atp870u.ko dtc.ko eata.ko fdomain.ko gdth.ko \
- megaraid.ko pas16.ko psi240i.ko \
- qlogicfas.ko \
- t128.ko tmscsim.ko u14-34f.ko ultrastor.ko wd7000.ko \
- a100u2w.ko 3w-xxxx.ko"
-
- MD_MODULES="md-mod.ko dm-mod.ko linear.ko xor.ko raid0.ko raid1.ko raid10.ko \
- raid5.ko"
-
- mount -t proc none /proc
- mkdir -p /dev/pts
- mount -t devpts none /dev/pts
-
-
- # Disable kernel messages to console:
- echo "0" > /proc/sys/kernel/printk
-
- DM="no"
-
- CMDLINE="`cat /proc/cmdline`"
- for x in $CMDLINE
- do
- if test "$x" = "scsi" ; then
- SCSI="yes"
- elif test "$x" = "sata" ; then
- SATA="yes"
- elif test "$x" = "md" ; then
- MD="yes"
- fi
- done
-
- XFS="yes"
- JFS="yes"
- REISER4="yes"
-
- if ! cat /proc/cmdline | grep root ; then
- echo "NO root parameter specified !!! You can now reboot your machine..."
- exit 0;
-
- else
-
- loadmodules(){
- TYPE=$TYPEX
- for i in "$@"; do
- echo "Probing ${TYPE}... $i"
- if test -f /modules/storage/$i && insmod /modules/storage/$i >/dev/null 2>&1
- then
- echo "Found ${TYPE} device(s) handled by $i."
- case "$TYPE" in scsi|SCSI) FOUND_SCSI="yes"; ;; esac
- fi
- done
- }
-
- insmod /modules/storage/cdrom.ko >/dev/null 2>&1
- insmod /modules/storage/ide-disk.ko >/dev/null 2>&1
- insmod /modules/fs/jbd.ko >/dev/null 2>&1
- insmod /modules/fs/ext3.ko >/dev/null 2>&1
- insmod /modules/fs/reiserfs.ko >/dev/null 2>&1
-
- if test "$MD" = "yes" ; then
- TYPEX="MD"
- loadmodules $MD_MODULES
- fi
-
- if test "$SATA" = "yes" ; then
- TYPEX="SATA"
- loadmodules $SATA_MODULES
- fi
-
- if test "$SCSI" = "yes" ; then
- TYPEX="SCSI"
- loadmodules $SCSI_MODULES
- fi
-
-
-
- if test "$REISER4" = "yes" ; then
- insmod /modules/fs/zlib_deflate.ko >/dev/null 2>&1
- insmod /modules/fs/zlib_inflate.ko >/dev/null 2>&1
- insmod /modules/fs/reiser4.ko >/dev/null 2>&1
- fi
-
-
- if test "$JFS" = "yes" ; then
- insmod /modules/fs/jfs.ko >/dev/null 2>&1
- fi
-
- if test "$XFS" = "yes" ; then
- insmod /modules/fs/exportfs.ko >/dev/null 2>&1
- insmod /modules/fs/xfs.ko >/dev/null 2>&1
- fi
-
- for name in `cat /proc/cmdline`; do
- echo $name | grep '^root=' > /dev/null
- if test $? -eq 0 ; then
- root=`expr "$name" : '.*=\(.*\)'`
- break
- fi
- done
- echo 0x0100 > /proc/sys/kernel/real-root-dev
- mount -o ro $root /mnt
-
- cd /mnt
-
- if ! test -d initrd ; then
- mount -o remount,rw $root /mnt
- mkdir initrd
- mount -o remount,ro $root /mnt
- fi
-
- umount /proc
- umount /dev/pts
- pivot_root . initrd
- exec /initrd/bin/chroot . sh -c 'umount /initrd; exec /sbin/init' \
- < /dev/console > /dev/console 2>&1
- fi